【原创】SpringCloud关于版本号的正确使用姿势(Hoxton)

您所在的位置:网站首页 alem hoxton翻译 【原创】SpringCloud关于版本号的正确使用姿势(Hoxton)

【原创】SpringCloud关于版本号的正确使用姿势(Hoxton)

2024-07-12 22:07| 来源: 网络整理| 查看: 265

SpringCloud最让新手头疼的就是它的版本号问题,一旦版本号匹配不上就会报各种奇奇怪怪的错,简直令人抓狂!!

其实SpringCloud已经非常友善了,版本管理也是相当的简单,只是新手不懂罢了。首先去官网,这里以SpringCloud的Hoxton.SR7版本来举例子,这是到2020年8月20日最新的SpringCloud版本了。

官网地址:https://spring.io/projects/spring-cloud/

SpringCloud的由于包含了一大堆微服务,而且各个微服务的版本号都不一样,所以SpringCloud的版本命名是通过英文单次首字母顺序决定的,这些英文单词都是伦敦地铁站的名字,目前为止是H版,也就是Hoxton(霍斯顿),前一个版本是Greenwich(格林威治)

Hoxton后面的SR7代表的是第7个正式发布版

其中最令人头大的是SpringCloud对应的微服务SpringBoot的版本,其实官网上写的也非常清楚了:

也是说我现在的Hoxton版本是SR7,超过了SR5,SpringBoot的版本必须是2.3.x,否则就会出各种意想不到的问题,比如ClassNotFound,Unable to start embedded Tomcat等等。

那有人就要问了,我这个SpringBoot的版本号是要我一个个去找吗?我从哪里可以找到呢?这里我推荐两个网站:

https://mvnrepository.com/

https://package-search.jetbrains.com/

 

…………谁会这么蠢去一个个找版本号呢~

SpringCloud早就为开发者准备好了版本对应清单:

在根项目的pom中引入:

Hoxton.SR7 2.3.3.RELEASE

这些是版本号信息,第一个是SpringCloud的版本号,我这里使用Hoxton.SR7。第二个是SpringBoot微服务对应的版本号。当然spring-boot-starter-parent具体的版本号还是要去找的,当然只要找这一次就行了。

然后加上:

org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-starter-parent ${spring-boot-starter-parent.version} pom import

这样就完成了通过父项目管理子项目版本号的目的了,那么所有继承这个父项目的子项目的所有版本都被自动管理,看一下spring-boot-starter-parent的源码就知道原因了:

之后所有子项目的dependency标签都不需要写version标签了,由父项目统一管理了,除非是父项目没有的。

子项目pom截图:

我看的是B站狂神的SpringCloud教程,他这一点根本没说,害我去堆标签中的内容,结果我堆了一大堆,报了一大堆莫名其妙的错,最后两个标签就完事了,浪费了我一大堆时间。

最后补充说明一下:

eureka-client、eureka-server、zuul,这几个微服务的artificialId必须是带netflix的版本才能用!!!!不带netflix的只有到1.4.7.RELEASE!!!!网上一大堆教程里说的都是错的!!完全过时了,如果使用了这些不带netflix的会导致一些莫名奇妙的问题!!

还有一点,zuul服务端必须是spring-cloud-starter-netflix-zuul,带有starter的,不带starter的也会报错!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3